#include <iostream>
#include <deque> // std::deque 定义于 <deque> 头文件
using namespace std;
// 在 C++中，<deque> 是标准模板库（STL）的一部分，它提供了双端队列（double-ended queue）的实现。
// 双端队列是一种允许在两端进行插入和删除操作的线性数据结构。
// <deque> 的全称是 "double-ended queue"，它在C++中以模板类的形式存在，允许存储任意类型的数据。
// <deque> 是一个动态数组，它提供了快速的随机访问能力，同时允许在两端进行高效的插入和删除操作。这使得 <deque> 成为处理需要频繁插入和删除元素的场景的理想选择。
int main()
{
    // <deque> 是一个动态数组，它提供了快速的随机访问能力，同时允许在两端进行高效的插入和删除操作
    std::deque<int> a{1, 2, 3}; // 实参 <int> 可省略
    a.push_back(4);             // 现在 a 是 {1, 2, 3, 4}
    a.pop_front();              // 现在 a 是 {2, 3, 4}
    a.pop_back();               // 现在 a 是 {2, 3}
    a.push_front(5);            // 现在 a 是 {5, 2, 3}
    for (int i{0}; i < a.size(); i++)
    {
        std::cout << a[i] << endl; // 遍历 std::deque
    }
    return 0;
}
